home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 December / PCWorld_2007-12_cd.bin / domacnost a kancelar / autoit / autoit-v3-setup.exe / Examples / Helpfile / _SQLite_SQLiteExe.au3 < prev    next >
Text File  |  2007-09-08  |  2KB  |  63 lines

  1. #include <sqlite.au3>
  2. #include <file.au3>
  3.  
  4. ;Filenames
  5. Local $sTsvFile = FileGetShortName(_TempFile(@ScriptDir,"~",".tsv"))
  6. Local $sDbFile = FileGetShortName(_TempFile(@ScriptDir,"~",".db"))
  7.  
  8. ;Create Tsv File
  9. FileWriteLine($sTsvFile,"a" & @TAB & "b" & @TAB & "c")
  10. FileWriteLine($sTsvFile,"a1" & @TAB & "b1" & @TAB & "c1")
  11. FileWriteLine($sTsvFile,"a2" & @TAB & "b2" & @TAB & "c2")
  12.  
  13. ;import (using SQLite3.exe)
  14. Local $sIn,$sOut,$i, $sCreate = "CREATE TABLE TblImport (";
  15. for $i = 1 To _StringCountOccurance(FileReadLine($sTsvFile,1),@TAB) + 1
  16.     $sCreate &= "Column_" & $i & ","
  17. Next
  18. $sCreate = StringTrimRight($sCreate,1) & ");"
  19. $sIn  = $sCreate & @CRLF ; Create Table
  20. $sIn &= ".separator \t" & @CRLF ; Select @TAB as Separator
  21. $sIn &= ".import '" & $sTsvFile & "' TblImport" & @CRLF
  22. _SQLite_SQLiteExe($sDbFile,$sIn,$sOut)
  23.  
  24. If @error = 0 Then
  25.     ;Show Table (using SQLite3.dll)
  26.     Local $iRows,$iColumns,$aRes
  27.     _SQLite_Startup()
  28.     _SQLite_Open($sDbFile)
  29.     _SQLite_GetTable2d(-1,"SELECT ROWID,* FROM TblImport;",$aRes,$iRows,$iColumns)
  30.     _SQLite_Display2DResult($aRes) ; Output to Console
  31.     _SQLite_Close()
  32.     _SQLite_Shutdown()
  33. Else
  34.     If @error = 2 Then 
  35.         ConsoleWrite("ERROR: Sqlite3.exe file not found" & @LF)
  36.     Else
  37.         ConsoleWrite("ERROR: @error=" & @error & " when calling _SQLite_SQLiteExe" & @LF)
  38.     EndIf
  39. EndIf
  40.  
  41. ;Remove Temp Files
  42. FileDelete($sTsvFile)
  43. FileDelete($sDbFile)
  44.  
  45. ;~ Output:
  46. ;~     rowid  Column_1  Column_2  Column_3 
  47. ;~     1      a         b         c        
  48. ;~     2      a1        b1        c1       
  49. ;~     3      a2        b2        c2       
  50.  
  51.  
  52.  
  53. Func _StringCountOccurance($sSearchString,$sSubString,$fCaseSense = 0) ; Returns Number of $sSubString in $sSearchString
  54.     Local $iOccCnt = 1
  55.     Do
  56.         If StringInStr($sSearchString,$sSubString,$fCaseSense,$iOccCnt) > 0 Then
  57.             $iOccCnt += 1
  58.         Else
  59.             ExitLoop
  60.         EndIf
  61.     Until 0
  62.     Return $iOccCnt - 1
  63. EndFunc